17 research outputs found
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from Concrete Concurrency Models
The upcoming many-core architectures require software developers to exploit
concurrency to utilize available computational power. Today's high-level
language virtual machines (VMs), which are a cornerstone of software
development, do not provide sufficient abstraction for concurrency concepts. We
analyze concrete and abstract concurrency models and identify the challenges
they impose for VMs. To provide sufficient concurrency support in VMs, we
propose to integrate concurrency operations into VM instruction sets.
Since there will always be VMs optimized for special purposes, our goal is to
develop a methodology to design instruction sets with concurrency support.
Therefore, we also propose a list of trade-offs that have to be investigated to
advise the design of such instruction sets.
As a first experiment, we implemented one instruction set extension for
shared memory and one for non-shared memory concurrency. From our experimental
results, we derived a list of requirements for a full-grown experimental
environment for further research
Oral history interview with Charles Antony Richard Hoare
Transcript, 43pp.Sir Antony Hoare is Senior Researcher at Microsoft Research in Cambridge, England, and Research/Professor Emeritus at the University of Oxford. Hoare is the recipient of the A.M. Turing Award for fundamental contributions to the definition and design of programming languages. He has also been awarded the Kyoto Prize in Advanced Technology for pioneering and fundamental contributions to software science. In this oral history Hoare recounts his personal involvement in the development of academic computing science and education at The Queen’s University, Belfast, Northern Ireland, and at the University of Oxford. He discusses his long-time interest in building bridges between university computing science departments and industry. Hoare also details his current work at Microsoft Research in applying assertions and other scientific techniques and theory to industrial operations. He discusses his advocacy of assertions in the maintenance and transformation of legacy code. Hoare also comments on a number of other subjects, including machine translation of languages, artificial intelligence, reasoning under uncertainty, software design and reliability, and project management. The interview includes a discussion of the problem of the preservation and interpretation of code
Concurrent Kleene Algebra
A concurrent Kleene algebra offers, next to choice and iteration, two composition operators, one that stands for sequential execution and the other for concurrent execution. They are related by an inequational form of the exchange law. We show the applicability of the algebra to a partially-ordered trace model of program execution semantics and demonstrate its usefulness by validating familiar proof rules for sequential programs (Hoare triples) and for concurrent programming (Jones's rely/guarantee calculus). The latter involves an algebraic notion of invariants; for these the exchange inequation strengthens to an equational distributivity law. Most of our reasoning has been checked by computer